<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    // 构造函数上的静态成员 和实例成员
    function Star(name,age){
        // 通过this添加的属性 和方法 都是构造函数的实例成员
        this.name = name
        this.age = age
        this.sing = function(){
            console.log(this.name+'会唱歌');
        }
        // console.log(this);//指向实例化出来的对象
    }
    Star.bubby = '唱歌' //通过构造函数添加的是静态成员
    Star.prototype.dance = function(){
        console.log('我会跳舞');
    }
    console.dir(Star);
  let ldh = new Star('刘德华',58)
  let zxy = new Star('张学友',50)
  console.log(zxy);
  console.log(ldh);
  zxy.sing()
  ldh.sing()
  console.log(zxy.sing === ldh.sing); //sing 是实例上的方法 ，实例上的方法不相等
//   挂载到原型的方法 所有的实例都可以共享 
  zxy.dance()
  ldh.dance()  
//   挂载到原型的方法  是相等的
  console.log(zxy.dance === ldh.dance);//

//   把方法挂载到实例上，会造成资源的浪费  所以我们可以把共用的方法挂载到构造函数的原型上




</script>
</html>